<?php
/**
 * @author Lucas
 */
    class Projeto_ProdutosPedidos{
        
        private $codigo;
        private $codproduto;
        private $codpedido;
        private $qtd;
        private $preco_un;
        private $codprod;
        private $nome;
        private $descricao;
        
        public function __construct(){
            
            $this->codigo = 0;
            $this->codproduto = 0;
            $this->codpedido = 0;
            $this->qtd = 0;
            $this->preco_un = 0;
            $this->codprod = 0;
            $this->nome = '';
            $this->descricao = '';
        }
        
        public function setCodigo($value){
            $this->codigo = (int)$value;
        }
        
        public function getCodigo(){
            return $this->codigo;
        }
        
        public function setCodproduto($value){
            $this->codproduto = (int)$value;
        }
        
        public function getCodproduto(){
            return $this->codproduto;
        }
        
        public function setCodPedido($value){
            $this->codpedido = (int)$value;
        }
        
        public function getCodPedido(){
            return $this->codpedido;
        }
        
        public function setQtd($value){
            $this->qtd = (int)$value;
        }
        
        public function getQtd(){
            return $this->qtd;
        }
        
        public function setPrecoUn($value){
            $this->preco_un = (float)$value;
        }
        
        public function getPrecoUn(){
            return $this->preco_un;
        }
        
        public function setCodprod($value){
            $this->codprod = (int)$value;
        }
        
        public function getCodprod(){
            return $this->codprod;
        }


        public function setNome($value){
            $this->nome = Util_Util::LimpaStringCompleta($value);
        }
        
        public function getNome(){
            return $this->nome;
        }
        
        public function setDescricao($value){
            $this->descricao = Util_Util::LimpaStringCompleta($value);
        }
        
        public function getDescricao(){
            return $this->descricao;
        }

        public function Carrega(){
            
            $query = ("SELECT * FROM produtos_pedidos WHERE codpedido = '{$this->getCodpedido()}'");
            $db = new DB_Connect();
            $result = $db->Query($query);
            
            if(!$result->NumRows()){
                throw new Exception("Cadastro não encontrado!");
            }else{
                $dados = $result->FetchObject();
                $this->setCodigo($dados->codigo);
                $this->setCodproduto($dados->codproduto);
                $this->setCodpedido($dados->codpedido);
                $this->setQtd($dados->qtd);
                $this->setPrecoUn($dados->preco_un);
            }
        }
        
        public function ListaMais(){
            
            $db = new DB_Connect();
            $query = ("
				SELECT 
                                    p.codigo AS codigo, 
                                    p.nome AS nome, 
                                    p.descricao AS descricao, 
                                    pp.codproduto AS codprod, 
                                    pp.codproduto AS qntProduto, 
                                    pp.codproduto AS codigoprod, 
                                    SUM(pp.qtd) AS quantidade 
                                FROM produtos AS p 
                                INNER JOIN produtos_pedidos AS pp ON pp.codproduto = p.codigo 
                                GROUP BY pp.codproduto 
                                ORDER BY quantidade DESC LIMIT 10 
            ");
            $result = $db->Query($query);
            if(!$result->NumRows()){
                throw new Exception("Não foram encontrados produtos");
            }else{
                $dados = array();
                while($produtos = $result->FetchObject()){
                    $dados[] = $produtos;
                }
                return $dados;
            }
        }
        
        public function ListaMenos(){
            
            $db = new DB_Connect();
            $query = ("
				SELECT 
                                    p.codigo AS codigo, 
                                    p.nome AS nome, 
                                    p.descricao AS descricao, 
                                    pp.codproduto AS codprod, 
                                    pp.codproduto AS qntProduto, 
                                    pp.codproduto AS codigoprod, 
                                    SUM(pp.qtd) AS quantidade 
                                FROM produtos AS p 
                                INNER JOIN produtos_pedidos AS pp ON pp.codproduto = p.codigo 
                                GROUP BY pp.codproduto 
                                ORDER BY quantidade ASC LIMIT 10 
            ");
            $result = $db->Query($query);
            if(!$result->NumRows()){
                throw new Exception("Não foram encontrados produtos");
            }else{
                $dados = array();
                while($produtos = $result->FetchObject()){
                    $dados[] = $produtos;
                }
                return $dados;
            }
        }
		
		public function Inseri(){
			$db = new DB_Connect();
			$query = ("
				INSERT INTO 
					produtos_pedidos 
						(codproduto, codpedido, qtd, preco_un)
					VALUES
						('{$this->codproduto}', '{$this->codpedido}', '{$this->qtd}', '{$this->preco_un}')
			");
			$resultado = $db->Query($query);
		}
    }
?>
